// 设置 STOMP 客户端
var stompClient = null;
// 设置 WebSocket 进入端点
var SOCKET_ENDPOINT = "/websocket-endpoint";
// 设置订阅消息的请求前缀
var SUBSCRIBE_PREFIX = "/topic"
// 设置订阅消息的请求地址
var SUBSCRIBE = "/";
// 设置服务器端点，访问服务器中哪个接口
var SEND_ENDPOINT = "/app/test";

/* 进行连接 */
function connect() {

    // 设置 SOCKET
    var socket = new SockJS(SOCKET_ENDPOINT);
    // 配置 STOMP 客户端
    stompClient = Stomp.over(socket);
    // STOMP 客户端连接
    stompClient.connect({}, function (frame) {
        // alert("连接成功");
        //alert("connect");
    });
}

//订阅任务信息
function subscribeTaskStatus(craneType) {
    // 设置订阅地址
    SUBSCRIBE = SUBSCRIBE_PREFIX + "/taskData/" + encodeURIComponent(craneType);
    // 输出订阅地址
    // alert("设置订阅地址为：" + SUBSCRIBE);
    // 执行订阅消息
    stompClient.subscribe(SUBSCRIBE, function (responseBody) {
        var receiveMessage = JSON.parse(responseBody.body);


        console.log(responseBody.body);
        $('#nowStatus').val(receiveMessage.nowStatus);
        $('#nowTask').val(receiveMessage.nowTask);
        switch(receiveMessage.nowMode){
            case "offline":
                $('#nowMode').val("下线");
                break;
            case "online":
                $('#nowMode').val("上线");
                break;
            case "move":
                $('#nowMode').val("移动");
                break;
            default:
                $('#nowMode').val("");

        }
        // $('#nowTask').val(receiveMessage.nowTask);

        switch(receiveMessage.nowStep){
            case "suck":
                $('#nowStep').val("吸板");
                break;
            case "place":
                $('#nowStep').val("放板");
                break;
            default:
                $('#nowStep').val("");

        }
        $('#nowSteel').val(receiveMessage.nowSteelNum);


        // $("#information").append("<tr><td>" + receiveMessage.content + "</td></tr>");
    });

}

//订阅PLC数据

function subscribePlcData(connectSnList) {
    for (let sn of connectSnList) {
        // 设置订阅地址
        SUBSCRIBE = SUBSCRIBE_PREFIX + "/" + sn;

        // 输出订阅地址
        // alert("设置订阅地址为：" + SUBSCRIBE);
        // 执行订阅消息
        stompClient.subscribe(SUBSCRIBE, function (responseBody) {
            var receiveMessage = JSON.parse(responseBody.body);
            console.log(receiveMessage);
            // $("#information").append("<tr><td>" + receiveMessage.content + "</td></tr>");
        });

    }

}

function test2(){
    // 设置订阅地址
    SUBSCRIBE = SUBSCRIBE_PREFIX + "/test2";
    // 输出订阅地址
    // alert("设置订阅地址为：" + SUBSCRIBE);
    // 执行订阅消息
    stompClient.subscribe(SUBSCRIBE, function (responseBody) {
        var receiveMessage = JSON.parse(responseBody.body);
        console.log("now time is "+receiveMessage);
        // $("#information").append("<tr><td>" + receiveMessage.content + "</td></tr>");
    });
}

/* 订阅信息 */
function subscribeSocket() {


    // 设置订阅地址
    SUBSCRIBE = SUBSCRIBE_PREFIX + "/test2";
    // 输出订阅地址
    // alert("设置订阅地址为：" + SUBSCRIBE);
    // 执行订阅消息
    stompClient.subscribe(SUBSCRIBE, function (responseBody) {
        var receiveMessage = JSON.parse(responseBody.body);
        console.log(receiveMessage);
        // $("#information").append("<tr><td>" + receiveMessage.content + "</td></tr>");
    });
}

/* 断开连接 */
function disconnect() {
    stompClient.disconnect(function () {
        alert("断开连接");
    });
}

/* 发送消息并指定目标地址（这里设置的目标地址为自身订阅消息的地址，当然也可以设置为其它地址） */
function sendMessageNoParameter() {
    // 设置发送的内容
    var sendContent = $("#content").val();
    // 设置待发送的消息内容
    var message = '{"destination": "' + SUBSCRIBE + '", "content": "' + sendContent + '"}';
    // 发送消息
    stompClient.send(SEND_ENDPOINT, {}, message);
}
